tf镜像烧录解读¶
一.系统镜像组成¶
TF卡或者其他存储介质中的系统镜像组成如下:
- boot部分,含boot0和boot1/uboot
- linux内核部分,含启动参数和fex配置
- linux根文件系统
Note
** 回想下在启动过程中这三个部分是如何串联起来的?
二.烧录boot部分镜像¶
将前面编译出的u-boot-sunxi-with-spl.bin烧录到tf 8KB偏移处 (sdb换成你自己的tf卡读卡器设备名)
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
sudo sync
Tip
** 学习下dd命令的详细用法
三.烧录linux内核镜像¶
需要准备uImage,script.bin,boot.scr三个文件
Note
** 回想下这三个文件的作用?
- uImage
- 使用linux-sunxi编译后可得到uImage
- script.bin
- 使用下面命令将fex转为bin
fex2bin a13-lichee.fex script.bin
- 需要根据使用的摄像头型号修改对应的fex字段
- boot.scr
- 使用下面命令将boot.cmd转为boot.scr
mkimage -C none -A arm -T script -d boot.cmd boot.scr
Tip
** 查看fex文件和boot.cmd文件,理解各字段含义
这三个文件在uboot启动时会在第一分区搜索,所以需要新建一个TF卡分区(FAT格式),需要使用fdisk命令。
Tip
*请自行学习fdisk命令
如果原来tf卡已经有分区表,请先清除分区。
烧录相关的脚本已上传至“资源文件”目录,可以查看其中的脚本命令。
一般来说,第一分区设为16MB大小就足够了。
然后格式化为FAT格式:
sudo mkfs.vfat /dev/sdb1
最后放入前面提到的三个文件即可。
四.烧录linux根文件系统¶
linux内核在启动时候会根据启动参数中的root参数来获得根文件系统分区号,然后加载之。
一般就按顺序把根文件系统设为第二分区,使用EXT3或者EXT4文件系统。
整个根文件系统有两种打包方式,dd方式和tar方式。
dd方式是直接备份整个分区信息,tar方式是直接打包整个分区。
dd出来的分区镜像可以直接使用mount命令在本机上加载查看,烧写速度也稍快些,所以荔枝派使用dd出来的镜像发布。
不过由于dd是备份了整个分区信息,所以连分区大小都是一致的,如果tf较大,可以自行扩容分区和文件系统
Tip
* 自学linux下扩容分区和文件系统的方法
dd if=fs2.img of=/dev/sdb2 bs=64K
sync
五.启动尝试¶
按上述方法准备好tf卡后,就可以尝试启动了! 把tf卡插入背面卡槽,有屏幕的插入屏幕(注意方向),有摄像头的插入摄像头(注意方向),再连上UART1(默认系统串口),上电。 正常情况就可以启动到debian系统了~
Tip
** 给出的镜像是出厂测试镜像,屏蔽了桌面系统,想开机启动桌面系统的可以尝试修改下
提供的镜像有两个用户lichee和root,密码均为lichee。 在github “资源文件”目录下,有烧写相关的文件和脚本(脚本还未整理,比较乱,不过也可以参考使用)